home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / dev / lang / pcq12src.lzh / Runtime / Extras / CRT2.p < prev    next >
Text File  |  1991-04-05  |  3KB  |  120 lines

  1. External;
  2.  
  3. {
  4.     These are a second set of routines for use with the
  5.     CRT stuff (mimicking the Turbo CRT unit routines).  These
  6.     are simple uses of the console device, made to look
  7.     something like the PC equivalents.
  8.  
  9.     Since these routines are based on the other CRT routines (in
  10.     particular WriteString()) I made a seperate file so the code
  11.     wouldn't have to be included.
  12.  
  13.     For each of these routines, CRT is a pointer to the CRT information
  14.     record returned by the Attach console routine.
  15. }
  16.  
  17.  
  18. {$I "Include:Utils/StringLib.i"}
  19.  
  20.     Procedure WriteString(CRT : Address; Str : String);
  21.     External;
  22.  
  23. Procedure ClrEOL(CRT : Address);
  24. {
  25.     Clear to the end of the line
  26. }
  27. begin
  28.     WriteString(CRT, "\cK");
  29. end;
  30.  
  31. Procedure ClrScr(CRT : Address);
  32. {
  33.     Clear the text area of the window
  34. }
  35. begin
  36.     WriteString(CRT, "\c1;1H\cJ");
  37. end;
  38.  
  39. Procedure CursOff(CRT : Address);
  40. {
  41.     Turn the console device's text cursor off
  42. }
  43. begin
  44.     WriteString(CRT, "\c0 p");
  45. end;
  46.  
  47. Procedure CursOn(CRT : Address);
  48. {
  49.     Turn the text cursor on
  50. }
  51. begin
  52.     WriteString(CRT, "\c p");
  53. end;
  54.  
  55.  
  56. { Delete the current line, moving all the lines below it  }
  57. { up one.  The bottom line is cleared.                    }
  58.  
  59. Procedure DelLine(CRT : Address);
  60. begin
  61.     WriteString(CRT, "\cM");
  62. end;
  63.  
  64. Procedure GotoXY(CRT : Address; x,y : Short);
  65. {
  66.     Move the text cursor to the x,y position.  This routine uses
  67.     the ANSI CUP command.
  68. }
  69. var
  70.     XRep : Array [0..7] of Char;
  71.     YRep : Array [0..7] of Char;
  72.     Dummy : Integer;
  73. begin
  74.     Dummy := IntToStr(Adr(XRep),x);
  75.     Dummy := IntToStr(Adr(YRep),y);
  76.     WriteString(CRT,"\c");
  77.     WriteString(CRT,Adr(YRep));
  78.     WriteString(CRT,";");
  79.     WriteString(CRT,Adr(XRep));
  80.     WriteString(CRT,"H");
  81. end;
  82.  
  83.  
  84. {  Insert a line at the current text position.  The current line and  }
  85. {  all those below it are moved down one.                             }
  86.  
  87. Procedure InsLine(CRT : Address);
  88. begin
  89.     WriteString(CRT, "\cL");
  90. end;
  91.  
  92. Procedure TextColor(CRT : Address; t : Byte);
  93. {
  94.     Set the foreground, or text, pen number.  The actual color depends
  95.     on the color map in use for the screen.
  96. }
  97. var
  98.     TRep : Array [0..7] of Char;
  99.     Dummy : Integer;
  100. begin
  101.     Dummy := IntToStr(Adr(TRep),t + 30);
  102.     WriteString(CRT, "\c");
  103.     WriteString(CRT, Adr(TRep));
  104.     WriteString(CRT, "m");
  105. end;
  106.  
  107. Procedure TextBackground(CRT : Address; t : Byte);
  108. {
  109.     Set the background color for the CRT unit.
  110. }
  111. var
  112.     TRep : Array [0..7] of Char;
  113.     Dummy : Integer;
  114. begin
  115.     Dummy := IntToStr(Adr(TRep),t + 40);
  116.     WriteString(CRT, "\c");
  117.     WriteString(CRT, Adr(TRep));
  118.     WriteString(CRT, "m");
  119. end;
  120.